import java.io.IOException;
import java.util.ArrayList;


public class Parser {
	  String path; // chemin vers le fichier dot
	  String fileName; // nom du fichier dot (sans l'extension)
	  System_equation s;
	  int nb_equation;
	  int nb_variable;
	  
	  public Parser(String path, String fileName)throws IOException, DotException 
	  {
		  
		  //parse le chemin du fichier
		  if (path.endsWith("/")) this.path = path;
		  else this.path = path + "/";
		  
		  //parse le nom du fichier
		  this.fileName = fileName;
		  
		  DotParser tok = new DotParser(this.path + fileName);
		  
		  
		  tok.next();
		  
		  //parse le nb d'equation
		  if (tok.ttype == DotParser.TT_NUMBER)
				this.nb_equation =(int)tok.nval;
		  else throw new DotException(tok);
		  tok.next();
		  
		  //parse le nb de variable
		  if (tok.ttype == DotParser.TT_NUMBER)
				this.nb_variable =(int)tok.nval;
		  else throw new DotException(tok);
		  tok.next();
		  
		  //parse les equations
		  int a,b,i;
		  ArrayList<Equation> S=new ArrayList<Equation>();
		  
		  while(tok.ttype != DotParser.TT_EOF)
		  {
			  if(tok.ttype == DotParser.TT_NUMBER)
			  {
				  a=(int)tok.nval;
				  tok.next();
				  if(tok.ttype == DotParser.TT_NUMBER)
				  {
					  b=(int)tok.nval;
					  tok.next();
					  if(tok.ttype == DotParser.TT_NUMBER)
					  {
						  i=(int)tok.nval;
						  Equation t;
						  if(i==0)
						  {
							  t=new Equation(a,b,false);
							  S.add(t);	
						  }
						  else if(i==1)
						  {
							  t=new Equation(a,b,true);
							  S.add(t);	
						  }
						  else 
						  {
							  System.out.println("Probleme dans le fichier");
							  System.exit(0);
						  }
						  tok.next();
					  }
					  else throw new DotException(tok);
				  }
				  else throw new DotException(tok);
			  }
			  else throw new DotException(tok);
		  }
		  s=new System_equation(S);		  		
	  }

}
